package com.qf.tenant.manager.service.impl;

import com.qf.common.bean.R;
import com.qf.common.dto.ProductDto;
import com.qf.common.model.QfProduct;
import com.qf.common.utils.IdWorker;
import com.qf.common.utils.QfUtil;
import com.qf.tenant.manager.feign.ProductFeign;
import com.qf.tenant.manager.service.ProductService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.Date;

/**
 * @author 千锋健哥
 */
@Service
public class ProductServiceImpl implements ProductService {

    @Autowired
    private ProductFeign productFeign;

    @Override
    public R<QfProduct> add(ProductDto dto) {
        //1. 生成产品唯一标识, 规则: product_行政区编码_雪花算法生成唯一id
        String productKey = "product_" + dto.getAreaCode() + "_" + new IdWorker().nextId();
        dto.setProductKey(productKey);

        //2. 生成产品认证的用户名(和productKey保持一致即可)
        dto.setUsername(productKey);

        //3. 生成产品认证密码(默认123456)
        String pwd = QfUtil.md5("123456");
        dto.setPassword(pwd);

        //4. 设置创建时间, 修改时间, 逻辑删除状态
        dto.setCreateTime(new Date());
        dto.setUpdateTime(new Date());
        dto.setDeleted(0);

        //5. 保存
        R<QfProduct> result = productFeign.add(dto);

        return result;
    }

}
